package com.wise.esexample.service;

import org.elasticsearch.index.query.QueryBuilder;
import org.elasticsearch.search.sort.SortBuilder;

/**
 * elasticSearch Dao接口
 *
 * @param <T>
 */
public interface EsService<T> {

    /**
     * 保存一个实体
     *
     * @param entity
     */
    void save(T entity);

    /**
     * 查找一个实体
     *
     * @return
     */
    T findById(String id);

    /**
     * 通过queryBuilder查询实体
     *
     * @param queryBuilder
     * @return
     */
    public T queryByQueryBuilder(QueryBuilder queryBuilder);

    /**
     * 通过queryBuilder与sortBuilder查询实体
     *
     * @param queryBuilder 查询条件
     * @param sortBuilder  排序规则
     * @return
     */
    public T queryByQueryBuilder(QueryBuilder queryBuilder, SortBuilder sortBuilder);
}
